package com.atguigu.eduservice.client;


import com.atguigu.commonutils.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;


// 该名字要写模块在nacos中注册的名字 也就是对应模块在配置文件中写的名字
// 而不是模块的名字
// 当我们要使用熔断器的时候，需要在里面加上参数fallback来指定需要使用的实现类
@FeignClient(name = "service-vod",fallback = VodFileDegradeFeignClient.class) //调用的服务名称
@Component
public interface VodClient {
    // 定义调用的方法路径 并且路径一定要写成完全路径
    // 根据视频id删除阿里云视频
    // @PathVariable注解一定要指定参数名称，否则出错
    @DeleteMapping("/eduvod/video/removeAliyunVideo/{id}")
    public R removeAliyunVideo(@PathVariable("id") String id);

    // 删除多个阿里云视频的方法
    // 参数多个视频id  List videoIdList
    @DeleteMapping("/eduvod/video/delete-batch")
    public R deleteBatch(@RequestParam("videoIdList") List<String> videoIdList);
}
